Implemented XENMEM_maximum_gpfn for domain save/restore with domain memmap.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
return ret;
}
+ case XENMEM_maximum_gpfn:
+ {
+ domid_t kern_domid;
+ domid_t __user *user_domid;
+ struct xencomm_handle *desc;
+
+ user_domid = (domid_t __user *)hypercall->arg[1];
+ if (copy_from_user(&kern_domid, user_domid, sizeof(domid_t)))
+ return -EFAULT;
+ desc = xencomm_create_inline(&kern_domid);
+
+ ret = xencomm_arch_hypercall_memory_op(cmd, desc);
+
+ return ret;
+ }
case XENMEM_translate_gpfn_list:
{
xen_translate_gpfn_list_t kern_op;
mm_p2m_teardown(d);
}
+unsigned long
+domain_get_maximum_gpfn(struct domain *d)
+{
+ return (d->arch.convmem_end + PAGE_SIZE - 1) >> PAGE_SHIFT;
+}
+
// stolen from share_xen_page_with_guest() in xen/arch/x86/mm.c
void
share_xen_page_with_guest(struct page_info *page,
#define domain_clamp_alloc_bitsize(d, b) (b)
-#define domain_get_maximum_gpfn(d) (-ENOSYS)
+unsigned long domain_get_maximum_gpfn(struct domain *d);
#endif /* __ASM_IA64_MM_H__ */